Modern software systems are exceedingly complex. Development of a software system incorporates activities such as project planning, resource planning, release management, build management, stream management, and the like. Further adding to this complexity, the teams involved in any given software development project are routinely located in geographically different locations. Managing this complexity requires a comprehensive view of the availability and skills of the resources involved.